Computer networks such as the Internet are well known today. Such networks include communication media, firewalls, routers, network switches and hubs. (Typically, firewalls, network switches and hubs include routers.) Networks often interconnect client computers and servers or other source and destination devices. A destination “device” can be a destination computer or gateway to a subnet. In the case of communications through the Internet, typically there are many routers and many possible routing paths between a source computer and a destination device. When a message arrives at a router, the router makes a decision as to the next router or “hop” in a path to the destination device. There are many known algorithms for making this decision, such as OSPF, RIP, IGRP, EIGRP, ISIS or BGP. Routers using the RIP, OSPF and ISIS protocols attempt to route message packets to a destination device via the shortest path, i.e. fewest number of intervening routers. Routers using the OSPF protocol also can determine the bandwidth of the path to the next hop based on the interface used for forwarding the message packet to the next hop. Routers using the IGRP and EIGRP protocols attempt to route message packets based on greatest bandwidth, shortest delays and shortest path factors. Routers using the BGP protocol attempt to route message packets based on shortest Autonomous System path (i.e. fewest number of routers within a single administrative control) or least multi-exit discriminator (“MED”) (i.e. a preference for one route over another that is advertised to neighboring routers, etc.). The OSPF, IGRP, EIGRP and BGP routing functions identify and record more than one route to most destination devices, and attempt to utilize them in an order based on an applicable routing policy.
In a common scenario, a source computer creates a message which it passes to a TCP/IP adapter card. The TCP/IP adapter card divides the message into packets and adds a header for each packet. The header specifies a source IP address and port, destination IP address and port and protocol. The source computer forwards the message packets to a firewall or gateway device (such as a gateway router) for the source computer. Typically, the firewall has a list of permitted message flows (“rules”), i.e. a list of combinations of source IP addresses and ports, destination IP addresses and ports and protocols for message packets that are permitted to pass through the firewall in either direction. Typically, the firewall includes a router as well. If the message packet is entitled to pass through the firewall of the source network, the router determines the “next hop” router en route to the destination device. The router determines the “next hop” based on a known routing protocol, as explained above. The message packet then advances, router by router, to the destination network, where a firewall or gateway device for the destination network forwards the message packet to the destination computer or other destination system (assuming the firewall at the destination network permits the message flow of the packet).
Occasionally, a message fails to reach its destination device. This can be due to a failure of a router in the communication path, a failure or a communication link between the routers in the communication path, proper or improper blockage by a firewall in the communication path, or other reason.
There are several ways that an administrator can learn of such a failure. For example, if the source device does not receive an expected response from the destination device, a user of the source device may call a help desk or otherwise notify an administrator. As another example, if a router in the path does not have a “route” to the destination device or the communication link to the next hop is down, the router can return an error message to the source device.
Upon detection of a failure in the network, an administrator will attempt to identify the cause of the failure and then correct the failure. In the case of a router in the path not having a “route” to the destination device or the communication link to the next hop being down, the error message will indicate the type of problem.
An object of the present invention is to improve trouble-shooting of a failure in network communication.